﻿#include "PrinterManager.h"

#include <QTextStream>
//#include <QPrinter>
//#include <QPrintDialog>
#include <QTextDocument>

PrinterManager::PrinterManager(QObject* parent) { qDebug() << "============== PRINTER SUPPORT =============="; }

PrinterManager::~PrinterManager() { }


QString PrinterManager::createHtml(QList<MyModel::TestData>& dataList) {
	QStringList html;
	//html
	//	<< tr("<!DOCTYPE html>")
	//	<< tr("<html lang='en'>")
	//	<< tr("<head>")
	//	<< tr("<meta content='text/html; charset=UTF-8'>")
	//	<< tr("</head>")
	//	<< tr("<body>")
	//	<< tr("<h1 style='text-align:center'>%1检测数据</h1>").arg(Configuration::getInstance().equipment.chName)
	//	//检测信息
	//	<< tr("<div style='margin: 0 10px'>")
	//	<< tr("<table border='0' cellspacing='0' cellpadding='0' width='100%' style='margin-left:0;border:none; border-collapse:collapse; font-size:14px'>")
	//	<< tr("<tr style='border: none'>")
	//	<< tr("<td style='text-align: left; border: none '>检测时间: %1</td>").arg(dataList[0].createTime().toString(TimeUtils::DATETIME_FORMAT))
	//	<< tr("</tr>")
	//	<< tr("<tr style='border: none'>")
	//	<< tr("<td style='text-align: left; border: none'>检测员: %1</td>").arg(dataList[0].tester())
	//	<< tr("<td style='text-align: left; border: none'>班次: %1</td>").arg(dataList[0].schedule())
	//	<< tr("</tr>")
	//	<< tr("</table>")
	//	<< tr("</div>")
	//	//检测数据
	//	<< tr("<div style='width:100%'>")
	//	<< tr("<table border='1' cellspacing='0' cellpadding='0' width='100%' style='border-collapse:collapse; font-size:16px;'>")
	//	<< tr("<tr>")
	//	<< tr("<th style='text-align:center;'>序号</th>")
	//	<< tr("<th style='text-align:center;'>牌号</th>")
	//	<< tr("<th style='text-align:center;'>编号</th>")
	//	<< tr("<th style='text-align:center;'>测量面</th>")
	//	<< tr("<th style='text-align:center;'>烟支面积(mm²)</th>")
	//	<< tr("<th style='text-align:center;'>警语区面积(mm²)</th>")
	//	<< tr("<th style='text-align:center;'>警语区占比(%)</th>")
	//	<< tr("<th style='text-align:center;'>分割线宽(mm)</th>")
	//	<< tr("<th style='text-align:center;'>文字数量</th>")
	//	<< tr("<th style='text-align:center;'>字体高度(mm)</th>")
	//	<< tr("<th style='text-align:center;'>警语面积(mm²)</th>")
	//	<< tr("<th style='text-align:center;'>警语占比(%)</th>")
	//	<< tr("</tr>")
	//	<< insertData(dataList)
	//	<< tr("</table><br/>")
	//	<< tr("<p style='text-align:right; margin-right:50px; margin-top:0px;'>打印日期:%1</p>").arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm"))
	//	<< tr("</div>")
	//	<< tr("</body>")
	//	<< tr("</html>");
	return html.join("");
}

QString PrinterManager::insertData(QList<MyModel::TestData>& dataList) {
	QStringList html;
	//for (int i = 0; i < dataList.size(); i++) {
	//	html
	//		<< tr("<tr>")
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(i + 1)
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(dataList[i].brand())
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(dataList[i].num())
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(dataList[i].name())
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(QString::number(dataList[i].area(), 'f', Configuration::getInstance().accuracy.area))
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(QString::number(dataList[i].warningArea(), 'f', Configuration::getInstance().accuracy.area))
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(QString::number(dataList[i].warningAreaRatio(), 'f', Configuration::getInstance().accuracy.value))
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(dataList[i].lineWidth())
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(dataList[i].textCount())
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(dataList[i].textHeight())
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(QString::number(dataList[i].textArea(), 'f', Configuration::getInstance().accuracy.area))
	//		<< tr("<td style='text-align:center;'>%1</td>").arg(QString::number(dataList[i].textAreaRatio(), 'f', Configuration::getInstance().accuracy.value))
	//		<< tr("</tr>");
	//}
	return html.join("\n");
}

void PrinterManager::printDirect(QList<DaoModel::TestData>& dataList) {
	//QPrinter printer(QPrinter::ScreenResolution);
	////设置输出格式
	//printer.setOutputFormat(QPrinter::NativeFormat);
	////设置页边距
	//printer.setPageMargins(0, 0, 0, 0, QPrinter::Millimeter);
	//printer.setPageSize(QPrinter::A4);
	//QPrintDialog printDialog(&printer);
	//if (printDialog.exec() == QDialog::Accepted) {
	//	QTextDocument document;
	//	document.setPageSize(QSizeF(printer.pageRect().size()));
	//	document.setDocumentMargin(30);
	//	QString html = createHtml(dataList);
	//	document.setHtml(html);
	//	document.print(&printer);
	//}
}